#pragma once

#include <windows.h>

//////////////////////////////////////////////////
//MainWindow
//////////////////////////////////////////////////

class RenderDevice;
class RenderTest;
class SceneManager;

class MainWindow
  {
  public:
    MainWindow(void);
    ~MainWindow(void);

  private:
    HWND mh_window;
    RenderDevice* m_render_device;
    RenderTest* m_render_test;
    SceneManager* m_scene_manager;    

  public:
    bool Init(HINSTANCE ih_instance);
    HWND GetWindowHandle();

    int enterMessageLoop();
	  static LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
	  LRESULT CALLBACK myWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
    void SetRenderDevice(RenderDevice* i_render_device);
  };

//////////////////////////////////////////////////